#include <stdio.h>
#include <stdlib.h>
#include "student.h"
#include "fileops.h"

void displayMenu() {
    printf("**********************学生信息管理系统**********************\n");
    printf("*                           欢迎使用                       *\n");
    printf("*                       1. 录入学生信息                     *\n");
    printf("*                       2. 删除学生信息                     *\n");
    printf("*                       3. 修改学生信息                     *\n");
    printf("*                       4. 查询学生信息                     *\n");
    printf("*                       5. 排序学生信息                     *\n");
    printf("*                       6. 列出所有学生信息                 *\n");
    printf("*                       7. 退出系统                         *\n");
    printf("***********************************************************\n");
    printf("请选择操作（1-7）: ");
}

int main() {
    int choice;
    StudentList *list = loadStudentsFromFile("data.txt");

    while (1) {
        displayMenu();
        scanf("%d", &choice);
        while(getchar() != '\n'); // clear input buffer

        switch (choice) {
        case 1:
            addStudent(list);
            break;
        case 2:
            deleteStudent(list);
            break;
        case 3:
            modifyStudent(list);
            break;
        case 4:
            queryStudent(list);
            break;
        case 5:
            sortStudents(list);
            break;
        case 6:
            displayAllStudents(list);
            break;
        case 7:
            saveStudentsToFile(list, "data.txt");
            freeStudentList(list); // release memory
            printf("感谢您使用学生信息管理系统，再见！\n");
            return 0;
        default:
            printf("无效的选择，请重新选择。\n");
        }
    }

    return 0;
}
